home *** CD-ROM | disk | FTP | other *** search
- read below for changes in libg++-2.0.19 from cygnus: the most
- significant atari specific user visible changes in libg++ are:
-
- clean up the binary flag stuff. define everything in terms of
- manifest constant _IOS_BIN. Also, in ios define binary and
- text flags so that in the spirit of fstreams one can say
- ofstream output_bin("filename", ios::out|ios::binary)
- instead of
- ofstream output_bin("filename", ios::out_bin);
- similarly
- ifstream input_text("filename", ios::in|ios::text);
- instead of
- ifstream input_text("filename", ios::in_text);
- etc..
-
- - in the open(name, int mode) was'nt setting bin
- flag for atarist
- - in the open(name, char *mode) allow "rb"/"wb" etc modes and set
- flags appropriately for bin/text mode.
-
- - also in both the cases above set initial flags appropriately from
- __default_mode__ (which is set by the C function _binmode(binp)).
-
- JUST in case it is'nt obvious: the atariST lib streams now fully
- honor the _binmode() and __DEFAULT_BUFSIZ__ semantic semantics of
- the atariST gcc C library, for all <iostreams> based streams and
- derivatives thereof. In case you are not familiar
-
- - calling _binmode(1): will cause all subsequent opens of any streams
- to be opened in binary mode (streams are opened in text mode normally).
- in any one individual call you can override the default. for example
-
-
- fopen("foo", "r"); open for read in text mode
- ifstream foo("foo", ios::read) open for read in text mode
-
- _binmode(1);
-
- fopen("foo", "r"); open for read in binary mode
- fopen("foo", "rt"); open for read in text mode
- ifstream foo("foo", ios::read) open for read in binary mode
- ifstream foo("foo", ios::read|ios::text) open for read in text mode
- ifstream foo("foo", ios::read|ios::binary) open for read in binary mode
- ifstream foo("foo", "r") open for read in binary mode
- ifstream foo("foo", "rt") open for read in text mode
-
- _binmode(0);
- ifstream foo("foo", "r") open for read in text mode
- ... and so on
-
-
- - __DEFAULT_BUFSIZ__ unless overridden by the user defines the default
- size of stream buffers, both in the C library and the G++ library.
- It is initialized to BUFSIZ (see stdio.h) if it is not defined in
- the user application.
-
- *** Changes in libg++ version 2.1:
-
- * "Class" include files in g++-include moved to src
-
- Those include files that are just wrappers around C header files
- (e.g. signal.h) remain in g++-include, while the header files
- that are specific to libg++ (or C++) have been moved to src.
- If your system includes "C++-ready" C header files (as in SVR4 or
- Linux), you don't need to use the wrappers in g++-include.
-
- * Portability
-
- A lot of effort has gone into makeing libg++ more portable.
- Code that depends on internals of "traditional" implementations
- had been made more portable. The 'libiberty' library is incorporated
- into libg++; this supplies (if needed) many functions that may be
- missing on particular hosts.
-
- * Auto-configuration
-
- New scripts automaticly figure out various properties of the
- system (and compiler) you use. While these scripts are not
- foolproof, the intent is that on most systems you will no longer
- have to edit Makefiles or build special configuration files.
-
- * Iostream bug-fixes
-
- There have been numerous bug-fixes and enhancements in the
- iostream code. Lots of rough edges in the streambuf and filebuf
- classes have been fixed.
-
- There are still some rough edges of the protocol (as in what the
- streambuf class should do, and what sub-classes such as filebuf
- should handle).
-
-
- * iostream enhancements for lexing/parsing.
-
- You can now create a 'streammaker' object, which is a "remembered"
- position is a streambuf. Later, you can backtrack to that position.
- This is supposed to work, even if the streambuf is unbuffered and
- otherwise unseekable, because the streambuffer never throws away
- any data following an extant streammarker. This feature will be
- used to build various scanning/parsing facilities (with backup).
- (See iostream.texi for an example.)
-
-